Computer presentation system and method with optical tracking of wireless pointer

ABSTRACT

A method for remotely controlling a computer having an associated screen for displaying output from the computer and having an internal cursor generated by the computer includes detecting at least one property of an external cursor relative to the screen and generating a command for the computer based on the at least one detected property of the external cursor. In one embodiment, the invention includes a computer connected to a projector which projects an image of the computer output onto an external screen. A camera is used to capture an image of the projected computer output. An optical pointer, such as a laser pointer, is used to generate and transmit an external cursor having various properties, such as color, shape, or intensity. The image captured by the camera is used to detect and process at least one property of the external cursor to generate a corresponding command or commands to control the computer. Commands may be used to emulate control of the computer typically provided by a pointing device such as a mouse or track ball.

TECHNICAL FIELD

The present invention relates to a system and method for remotelycontrolling a computer by optically tracking and synchronizing awireless optical pointer with a projected image of the computer screen.

BACKGROUND ART

A number of systems and methods for remotely controlling a computer havebeen developed to adapt the conventional keyboard/mouse interface to awide variety of user applications and preferences. A variety oftechnologies including ultrasonic, infrared, and radio frequency (RF)have been used to afford users increased mobility relative to thecomputer processor and/or display screen. These technologies typicallyemploy custom transmitters/receivers to communicate control and statusinformation between the user and the computer which may be used tocontrol the computer. A number of systems use sensors positioned on theuser, on the computer, and/or on a display screen to detect movement ofthe user and/or a wireless pointing device relative to the sensors.While acceptable for certain applications, these techniques may belimited by line-of-sight requirements or distance, for example.Likewise, these systems require complex and often expensive equipmentwhich may not be readily adaptable to different forums having audiencesranging from a few individuals to a filled auditorium.

As computers are increasingly being used for graphical presentationsand/or demonstrations, larger display devices are used to provideviewing by audiences of varying size. Many presentations, such as slideshows and the like, require relatively simple control of the computerduring the actual presentation. Commands which advance or reverse slidesor initiate a display sequence require only a basic user interface orremote control to communicate with the computer. However, moresophisticated presentations or demonstrations, such as used for softwareuser training or promotion, require a more sophisticated interface orremote control to effectively operate the computer. Conventionalstrategies require the presenter to either remain within close proximityof the computer to operate the keyboard and/or pointing device (mouse,touchpad, track ball, etc.) or have an assistant perform the requiredoperations.

DISCLOSURE OF INVENTION

Thus, it is an object of the present invention to provide a system andmethod for remotely controlling a computer in a similar manner asperformed by a conventional pointing device.

Another object of the present invention is to provide a system andmethod for remotely controlling a computer based on characteristics ofan optical pointer used to superimpose a cursor or visual cue onto aprojected image of a computer screen.

A further object of the present invention is to provide a system andmethod for synchronizing position and/or movement of a cursor on acomputer screen with position and/or movement of an optical pointer.

An additional object of the present invention is to provide a system andmethod for detecting characteristics of an optical pointer, such asshape, color, intensity, motion, or similar characteristics relative toa computer display to provide commands to a computer.

Yet another object of the present invention is to provide a system andmethod for remotely controlling a computer using position-relatedcommands corresponding to characteristics of an optical cursorsuperimposed on a computer display.

A still further object of the present invention is to provide a systemand method for connectionless optical tracking of light in conjunctionwith a computer to emulate a conventional computer pointing device.

In carrying out the above objects and other objects, features, andadvantages of the present invention, a system and method for remotelycontrolling a computer having an associated screen for displaying outputfrom the computer and having an internal cursor generated by thecomputer include detecting at least one property of an external cursorrelative to the screen and generating a command for the computer basedon the at least one detected property of the external cursor. In oneembodiment, the invention includes a computer connected to a projectorwhich projects an image of the computer output onto an external screen.A camera is used to capture an image of the projected computer output.An optical pointer, such as a laser pointer, is used to generate andtransmit an external cursor having various properties, such as color,shape, or intensity. The image captured by the camera is used to detectand process at least one property of the external cursor to generate acorresponding command or commands to control the computer. Commands maybe used to emulate control of the computer typically provided by apointing device such as a mouse, track ball, or the like.

The present invention provides a number of advantages relative to priorart strategies. For example, the present invention allows the user toutilize a conventional optical pointing device, such as a laser pointer,to provide position dependent commands to a remotely located computer.As such, the present invention provides a relatively simple remote userinterface capable of more sophisticated control of the computer, similarto a conventional computer pointing device, such as a mouse or trackball. The present invention permits a user to control a computer for asoftware demonstration from any location where the computer screen or aprojected image of the computer screen is accessible via an opticalpointer. In one embodiment, the present invention integrates a projectorand video camera and/or frame capture device within a single unit.

The above advantages and other advantages, objects, and features of thepresent invention, will be readily apparent from the following detaileddescription of the best mode for carrying out the invention when takenin connection with the accompanying drawings.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram illustrating a representative computerpresentation system with optical tracking for remotely controlling thecomputer according to the present invention;

FIG. 2 is a diagram illustrating projection of calibration reticles orfiducials and derivation of coordinates for an external cursor of oneembodiment according to the present invention; and

FIG. 3 is a flow chart illustrating operation of a system or method forremotely controlling a computer using optical tracking of an externalcursor according to the present invention.

BEST MODE FOR CARRYING OUT THE INVENTION

Referring now to FIG. 1, a block diagram illustrating a representativecomputer presentation system with optical tracking for remotelycontrolling the computer according to the present invention is shown. Asused herein, the remote control of the computer is intended to includecontrol of various application programs and/or the operating system ofthe computer. In this embodiment, computer 10 is connected to a videoprojector 12 and a video camera 14. Video projector 12 projects an image16 of the computer output onto a projection surface or screen, indicatedgenerally by reference numeral 18. Preferably, screen 18 is a “passive”screen, i.e. a substantially planar surface remotely located fromcomputer 10 and of a light color to provide sufficient contrast to theimage of computer output generated by projector 12. Various objects maybe used to provide such a surface, including projection screens, walls,or the like. Output from computer 10 may also be displayed on an“active” screen which would include a traditional computer screen 20 oflaptop computer 10, or any other display device such as a monitor,television, or similar “active” device. Such “active” screens may beused alone, or in combination with one or more “passive” screens withoutdeparting from the spirit or scope of the present invention.

As also illustrated in FIG. 1, an external cursor, indicated generallyby reference numeral 22, is superimposed on image 16 which is outputfrom computer 10. As used in this application, an external cursor is onewhich is generated externally relative to computer 10, i.e. generated bysome other device which could include another computer, projector, orthe like. In one embodiment, external cursor 22 is generated by ahand-held optical pointer 24 which has the capability of varying atleast one property of external cursor 22. For example, optical pointer24 may vary the color, shape, size, intensity, illumination pattern,motion, and/or position of external cursor 22 to generate one or morecommands to remotely control computer 10 according to the presentinvention. In one preferred embodiment, optical pointer 24 is a laserpointer which generates an external cursor in one of two user-selectablecolors. In this embodiment, the external cursor has a significantlyhigher intensity than the output of the computer and is therefore moreeasily detected.

Preferably, camera 14 captures an image including at least a substantialportion of image 16 generated by projector 12. In an alternativeembodiment where an active screen is utilized, camera 14 preferablycaptures at least a substantial portion of the active screen, i.e.computer monitor, display, or television. Computer 10 processes thecaptured image to determine at least one property of external cursor 22.In a preferred embodiment of the present invention, computer 10processes image 16 to determine at least the position of external cursor22 and generates an appropriate command or commands to move an internalcursor 26 to approximately the same position as external cursor 24.Computer may also process image 16 to detect various other properties ofexternal cursor 22 to generate position-dependent commands which areused to remotely control computer 10. Such position or context-dependentcommands may emulate a “left-click” or “right-click” command generatedby a traditional computer pointing device, such as a mouse, track ball,touch pad, or the like. Likewise, various other commands may beassociated with one or more properties of external cursor 22 dependingupon the particular application.

In one embodiment of the present invention, computer 10 may periodicallygenerate reticles or fiducials, indicated generally by reference numeral28, to calibrate or register the image captured by camera 14 relative toimage 16 on screen 18. Preferably, each of the four corners of the imageof the computer output contains a reticle or fiducial and the fiducialsare used to delineate the “active” tracking region where external cursor22 is detected. The fiducials may be any appropriate shape such as aright-angle or cross as illustrated. For applications where screen 18 isnot substantially planar, fiducials 28 should cover more of the screen.For example, fiducial lines may extend horizontally or vertically acrossscreen 18.

Preferably, projector 12 (when used), camera 14, and screen 18 arestationary and remain substantially fixed to facilitate the calibration(registration) and tracking process. However, the present inventioncould also be used in applications where one or more of these deviceschanges position, although detection of the properties of externalcursor 22 becomes more complex and computationally intensive. Thecalibration or registration process may be repeated automatically atpredetermined intervals, based on a user request, and/or when externalcursor 22 is not detected. In one embodiment of the present invention,reticles or fiducials 28 are progressively moved toward the position ofexternal cursor 22 to simplify processing of the image to detectexternal cursor 22. In this embodiment, only the area delineated byfiducials 28 is searched or scanned to detect external cursor 22. Ifexternal cursor 22 is not located within the area defined by fiducials28, their position is either reset to, or progressively expanded toward,the original corners of the processed image until external cursor 22 isdetected.

FIG. 2 represents a single image frame 40 captured by video camera 14.Preferably, frames are repeatedly captured and processed to detect atleast one property of external cursor 22. Typical frame capture ratesare thirty or sixty frames per second. Preferably, the frame capturerate of the video camera and/or the output of an active screen orprojector are selected to minimize aliasing and other interferencewithin the frequency bands of interest. Such interference may beproduced by the beat frequency or difference frequency between therefresh rate of the screen or projector and the video camera. Any suchinterference effects may also be reduced by appropriate filtering of thecaptured image. Filtering may be performed as part of the imageprocessing by the computer, or may be performed by appropriate hardwareas part of the image capture process.

Captured image frame 40 preferably includes a substantial portion of thecomputer output image, represented generally by reference numeral 42. Asillustrated in FIG. 2, computer output image 42 may occupy a convexquadrilateral area within captured frame 40. Image 42 will not berectangular if either or both of the projector and the camera are notlocated on the line which passes perpendicularly through the center ofthe screen. Preferably, the computer embeds or superimposes the reticlesor fiducials 28 within image 42. Processing of captured image 40 mayutilize line and intersection pattern recognition depending upon theparticular type of fiducials utilized to locate corners C1′, C2′, C3′,and C4′. Determination of the locations of C1′, C2′, C3′, and C4′ andthe properties of the external cursor is simplified because theiridentifying characteristics are known a priori. Identification of itemswithin a static image and identification of dynamic motion of featuresmay be accomplished using any number of known image processingtechniques, such as those described in “MACHINE VISION” by Jain,Kasturi, and Schunk, published by McGraw-Hill, ISBN 0-07-032018-7. Thepresent invention is independent of the particular image processingtechniques utilized to identify or detect the properties of the externalcursor used to remotely control the computer. An exemplary method fordetermining position or location information of the external cursor isprovided below.

The locations of corners C1′, C2′, C3′, C4′, and external cursor 22 maybe determined for a classic video quadrant system having horizontalcoordinates represented by X and vertical coordinates represented by Y,with Y=0 representing the topmost scan-line. The number of scan-linesdetermines the maximum Y value. The positions corresponding to thecoordinates for X=0 are the first (left-most) pixel in each scan-line,and the number of pixels per scan-line determines the maximum X value.The line segment C1-C2 corresponds to the X-axis, and segment C1-C4corresponds with the Y-axis. Points interior to image 42 are representedwith normalized (T, U) coordinates where C1′ has coordinates (T=0.0,U=0.0), and C3′ has coordinates (T=1.0, U=1.0). The normalizedcoordinates can then be scaled to an appropriate resolution for image40. Coordinates T and U can be determined for any point in a given videoframe using a pair of parametric equations. First, X-Y coordinate pairsfor each of the corners C1′ through C4′ are represented as:

C1′=(X1′, Y1′)

C2′=(X2′, Y2′)

C3′=(X3′, Y3′)

C4′=(X4′, Y4′)

The parametric equation for a line is P(Q)=P0−Q(P0−P1), where Q isreplaced by T and then U in this example. The T-axis is defined usingC1′-C2′ and C4′-C3′ while the U-axis is defined using C1′-C4′ andC2′-C3′. Because the embedded quadrilateral defining image 42 is notguaranteed to have parallel boundaries, the mapping from (X,Y) to (T,U)is not a simple rectangular mapping in the general case. However, themapping may be derived as described below.

The parametric equations for the embedded quadrilateral boundariesdefining image 42 are given by:

Upper boundary (LT1): p(T)=C1′−T(C1′−C2′)

Lower boundary (LT2): p(T)=C4′−T(C4′−C3′)

Left boundary (LU1): p(U)=C1′−U(C1′−C4′)

Right boundary (LU2): p(U)=C2′−U(C2′−C3′)

The mapping in (T,U) may then be defined by selecting either the LT pairor the LU pair and defining a parametric equation in the other variable(either U or T, respectively) as follows:

p(T)=LU1−T(LU1−LU2)  1:

or, equivalently:

p(U)=LT1−U(LT1−LT2)  2:

Equation 1 represents how the U-axis scales and/or rotates as ittraverses the (T,U) space from its location at T=0, to its location atT=1. Equation 2 represents how the T axis scales and/or rotates as ittraverses the (T,U) space from U=0, to U=1. As indicated above, eitherequation may be used to determine a parameteric equation in the othervariable. In this example, Equation 1 is selected and the equations forLU1 and LU2 are substituted into Equation 1 to generate Equation 3 asfollows:

p(T,U)=[C1′−U(C1′−C4′)]−T{[C1′−U(C1′−C4′)]−[C2′−U(C2′−C3′)]}  3:

To simplify the notation, it is useful to define a shorthand notationrepresenting the differences or deltas between coordinates of the cornerpoints as follows:

d1: C1′−C2′

d2: C2′−C3′

d3: C4′−C3′

d4: Cl′−C4′

Where a difference value applies to the difference between values ofonly one coordinate, i.e. only the X or only the Y coordinate values,the difference is represented by either an X or Y, respectively, betweenthe “d” and the number. For example, dX2 represents the quantity(X2′-X3′), while dY4 represents the quantity (Y1′-Y4′). The (X′,Y′)point pairs are then substituted for C1′, C2′, C3′, and C4′ in Equation3, with the delta notation used to simplify the resulting equations.Depending upon how the four points multiplied by U are paired, one ofthe following equations results:

p(T,U)=[C1′−U* d4]−T[d1−U(d1−d3)]  4:

or

p(T,U)=[C1′−U*d4]−T[d1−U(d4−d2)]  5:

Equations 4 and 5 are equally valid and each represents a pair oflinearly independent equations, one in X and the other in Y becausep(T,U) is represented by a generic coordinate pair (X, Y). Equation 5 isselected for this example and split into the X and Y equations:

X=X1′−U*dX4−T*dX1+UT(dX4−dX2)  6:

Y=Y1′−U*dY4−T* dY1+UT(dY4−dY2)  7:

Equations 6 and 7 are then solved for T and U, respectively, to produceequations 8 and 9 as follows: $\begin{matrix}{T = \frac{{X1}^{\prime} - X - {U*{d4}}}{{d\quad {X1}} - {U\left( {{d\quad {X4}} - {d\quad {X2}}} \right)}}} & 8 \\{U = \frac{{Y1}^{\prime} - Y - {T*d\quad {Y1}}}{{d\quad {Y4}} - {T\left( {{d\quad {Y4}} - {d\quad {Y2}}} \right)}}} & 9\end{matrix}$

Because Equations 8 and 9 are linearly independent, either equation canbe substituted into the other. In this example, Equation 9 issubstituted into Equation 8 to obtain: $\begin{matrix}{T = \frac{{X1}^{\prime} - X - {d\quad {X4}\frac{{Y1}^{\prime} - Y - {T*d\quad {Y1}}}{{d\quad {Y4}} - {T\left( {{d\quad {Y4}} - {d\quad {Y2}}} \right)}}}}{{d\quad {X1}} - {\left( {{d\quad {X4}} - {d\quad {X2}}} \right)\frac{{Y1}^{\prime} - Y - {T*d\quad {Y1}}}{{d\quad {Y4}} - {T\left( {{d\quad {Y4}} - {d\quad {Y2}}} \right)}}}}} & 10\end{matrix}$

Which is now only an equation in T for an arbitrary point havingcoordinates (X,Y) in the original space. Solving Equation 10 for Tyields a simple quadratic in T:

0=AT ² +BT+C  11:

where

A=dY1(dX4−dX2)−dX1(dY4−dY2)

B=dX1*dY4−(Y1−Y)(dX4−dX2)−dY1*dX4+(X1−X)(dY4−dY2)

C=dX4*(Y1−Y)−dY4(X1−X)

Equation 11 may then be solved using the quadratic formula. In Equation11, A is constant, while B and C vary depending upon the values of X andY. As such, if the lines formed by extending the segments C1′-C2′ andC4′-C3′ intersect, there will be two solutions to Equation 11, one ofwhich is the T coordinate of the point of intersection, the other ofwhich is the correct value for T. If the lines do not intersect, thesingle solution will be the correct value for T. Once the correct valueof T is determined, it is back-substituted into Eqn. 9 to determine thecorresponding value for U.

The above example demonstrates that once Cl′, C2′, C3′, and C4′ areknown, and the (X,Y) coordinates of external cursor 22 are determined, astraight-forward computation yields values for (T,U) which represent the“mouse coordinates” for internal cursor 26 of the computer output.Because the T-U coordinate system has been normalized, any coordinateswith T or U outside of the normalized range (0 to 1) can be ignored fortracking purposes because they do not fall within image 42 of computeroutput. To determine the scaled values for the coordinates of internalcursor 26, T is multiplied by the horizontal resolution and U ismultiplied by the vertical resolution of the captured image 40. Once thecalibration or registration process has determined C1′, C2′, C3′, andC4′, at least one property of external cursor 22 is monitored or trackedby repeatedly capturing and analyzing frames as illustrated anddescribed with reference to FIG. 3. In one embodiment of the presentinvention, position of external cursor 22 is determined only whileexternal cursor is within projected image 42 while various otherproperties of external cursor 22, such as shape, color, size, etc. aremonitored as long as external cursor 22 is within captured image 40,i.e. even when external cursor 22 is outside of projected image 42.

Referring now to FIG. 3, a flowchart illustrating operation of oneembodiment of a system and method for remotely controlling a computeraccording to the present invention is shown. As will be appreciated byone of ordinary skill in the art, the flowchart illustrated in FIG. 3may represent any of a number of known processing strategies such asevent-driven, interrupt-driven, multi-tasking, multi-threading, and thelike. Similarly, the present invention is independent of the particularprogramming language, operating system, or computer platform which maybe used to implement the invention. As such, various steps or functionsillustrated may be performed in the sequence illustrated, in parallel orin some cases omitted altogether. Likewise, the order of processingillustrated is not necessarily required to achieve the objects,features, and advantages of the invention, but is provided for ease ofillustration and description.

Preferably, the control logic of FIG. 3 is implemented in software whichis executed by a microprocessor-based computer, such as a laptop ordesktop computer, represented generally by computer 10 of FIG. 1. Ofcourse, various portions or functions of the control logic may beimplemented in software, hardware, or a combination of software andhardware. The flowchart of FIGS. 3 illustrates one “loop” and itsoperations are preferably repeated at periodic time intervals or asrequired by some internal or external event, as known by those of skillin the art. Preferably, control logic represented in FIG. 3 is embodiedin data stored on a computer readable storage medium, such as a floppydisk, hard disk, CD-ROM, tape, or other magnetic, optical or combinationdevice. The computer readable storage medium includes data representinginstructions executable by a computer to generate commands for remotelycontrolling a computer according to the present invention.

Output from a computer is displayed as represented by block 50 of FIG.3. Preferably, output from the computer is displayed on an associatedscreen which may be a computer monitor, external television or monitor,or an external “passive” screen as described above. A plurality offiducial or reticles are superimposed on the computer output asrepresented by block 52. Preferably, the fiducials are generated by thecomputer and superimposed on the output. The fiducials are used forregistration or calibration of the system. Preferably, the fiducials arepositioned in the corners of the computer output and the shape of thefiducials is known a priori to the system. Step 52 may be periodicallyrepeated depending upon the particular application. For example, step 52may be initiated by the user to calibrate the system, or automaticallyrepeated at predetermined time intervals, or repeated based on someinternal or external event. For example, block 52 may be repeatedwhenever the external cursor is not detected within the image.

An image of the computer output is captured as represented by block 54.Preferably, a camera which includes a CCD array is used in conjunctionwith an appropriate frame capture card to capture the image. Preferably,the image includes a substantial portion of the computer output.However, depending upon the particular implementation, the image mayinclude only the central portion or some other region of the screen usedto display the computer output. Alternatively, the image may encompassthe entire screen used to display the computer output.

The image is processed to detect position of the fiducials asrepresented by block 56. As indicated above, the operations representedby blocks 52 and 56 may be selectively repeated under variouscircumstances. Preferably, one of the fiducials is utilized as theorigin for a normalized coordinate system to determine position of theexternal cursor relative to the computer output as described above.

After completing the calibration or registration process, images arerepeatedly captured and processed as represented by blocks 58-72. Acaptured image, represented by block 58, is processed to detect at leastone property of an external cursor as represented by block 60.Preferably, the external cursor is an optical cursor generated by ahand-held pointer and includes at least one user selectable (changeable)property. The selectable property or properties of the cursor are usedto remotely control the computer. Cursor properties may includeintensity, color, shape, or size, as represented by blocks 62, 64, 66,and 68, respectively. In addition, cursor properties may include aparticular pattern of movement as represented generally by reference 70.Position of the external cursor, represented by block 72 is preferablyalso detected relative to the position of the fiducials as determined byblock 56. In addition, any one or more of the properties may be used incombination to generate appropriate commands for the computer. Forexample, the position of the external cursor, represented by block 72,may be used in combination with the color or shape of the cursor whichis represented by blocks 64 and 66 respectively, i.e., the color and/orshape of the external cursor generate different commands based on theposition of the cursor.

The property or properties of the external cursor which are detected byblock 60 are converted to corresponding commands to control the computeras represented by block 74. This may be accomplished by any of a numberof known strategies. For example, a data structure may be used toassociate various properties or combinations of properties withcorresponding commands in a particular software application. Of course,the particular commands generated may vary from one application toanother. Preferably, the commands generated by block 74 control movementof the internal cursor generated by the computer such that movement ofthe external cursor generated by the pointer causes movement of theinternal cursor generated by the computer to synchronize movement of thecursors. In addition, various context-sensitive or position-sensitivecommands may be generated by varying one or more properties for aparticular position of the external cursor.

The following provides a representative use of one embodiment of thepresent invention which includes a hand-held laser pointer with threealigned laser emitters arranged as an isosceles triangle. One emitter ofthe pointer is active at all times once the pointer is turned on. Asecond emitter is selectively activated by the user by pressing a firstbutton which results in a command corresponding to a“left-mouse-button-click” command. All three emitters are selectivelyactivated by the user by pressing a second button on the laser pointerwhich results in a command corresponding to a “right-mouse-button-click”command. In this embodiment, various properties including the intensity,color, and pattern (or shape) of the external cursor generated by thelaser pointer are used to determine location of the external cursor inaddition to which button (if any) is being depressed. When no buttonsare pressed, a single high-intensity cursor in the shape of a dot, thecolor of the first emitter, is visible within the captured image frame.When the first button is pressed, the shape and color of the externalcursor is changed in that a second dot appears located at some distancefrom the first dot. When the second button is pressed, the externalcursor takes yet another shape and color consisting of two additionaldots which appear as the remaining points of the isosceles triangle. Theproperties of the external cursor are detected and processed by thesystem to generate corresponding commands to remotely control thecomputer.

While embodiments of the invention have been illustrated and described,it is not intended that these embodiments illustrate and describe allpossible forms of the invention. Rather, the words used in thespecification are words of description rather than limitation, and it isunderstood that various changes may be made without departing from thespirit and scope of the invention.

What is claimed is:
 1. A method for remotely controlling a computerhaving an associated screen for displaying output from the computer andhaving an internal cursor generated by the computer, the methodcomprising: detecting at least one property of an external cursor andposition of the external cursor relative to the output from thecomputer; generating a command to move the internal cursor to a positionon the screen corresponding to the position of the external cursor; andgenerating a command for the computer based on the at least one detectedproperty of the external cursor.
 2. The method of claim 1 wherein thestep of detecting comprises: capturing an image of the screen and theexternal cursor with a camera; and processing the image to detect the atleast one property of the external cursor.
 3. The method of claim 2wherein the step of processing the image comprises: comparing the imageto a previously captured image to detect differences between the imageand the previously captured image.
 4. The method of claim 2 wherein thestep of processing the image comprises: filtering the image to detectthe at least one property of the external cursor.
 5. The method of claim4 wherein the step of filtering comprises thresholding the image todetect intensity of the external cursor relative to intensity of thecomputer output.
 6. The method of claim 4 wherein the step of filteringcomprises filtering the image to detect color of the external cursor. 7.The method of claim 4 wherein the step of filtering comprises filteringthe image to detect shape of the external cursor.
 8. The method of claim1 further comprising transmitting the external cursor to the screenusing a source of directed optical energy.
 9. The method of claim 1wherein the associated screen is a substantially planar surface remotelylocated external to the computer and any associated monitor, the methodfurther comprising projecting an image of the output from the computeronto the associated screen.
 10. The method of claim 1 wherein theassociated screen is a computer monitor.
 11. The method of claim 1wherein the step of detecting at least one property of the externalcursor comprises detecting a pattern of movement of the external cursor.12. The method of claim 1 further comprising: projecting a plurality offiducials onto the associated screen; and detecting position of thefiducials relative to output from the computer, wherein the step ofdetecting at least one property includes detecting position of theexternal cursor relative to at least one of the fiducials.
 13. Themethod of claim 12 wherein the step of generating a command for thecomputer comprises generating a command based on the position of theexternal cursor only if the external cursor is within a regiondelineated by the plurality of fiducials.
 14. The method of claim 12wherein the step of generating a command for the computer comprisesgenerating a command based on the position of the external cursor whilethe external cursor is within a region delineated by the plurality offiducials but outside output from the computer, and generating a commandfor the computer based on the at least one property while the positionof the external cursor is within the associated screen.
 15. The methodof claim 12 wherein the step of detecting comprises detecting a patternof movement of the external cursor.
 16. The method of claim 1 furthercomprising: displaying a plurality of fiducials on the associated screenwherein positions of the fiducials are determined based on position ofthe external cursor.
 17. A method for generating computer commands basedon position and at least one property of an external cursor, the methodcomprising: displaying output from a computer; displaying the externalcursor on the output; capturing an image of the output; processing theimage to determine position and at least one property of the externalcursor; and converting the position and the at least one property tocorresponding computer commands so an internal cursor tracks position ofthe external cursor.
 18. The method of claim 17 wherein the step ofdisplaying output from a computer comprises projecting an image of theoutput on a remotely located screen.
 19. A method for remotelycontrolling a computer, the method comprising: displaying output fromthe computer on a remotely located screen; projecting an optical cursorgenerated by a hand-held pointer on the remotely located screen;capturing an image of at least a portion of the remotely located screen;processing the image to detect position of the optical cursor and atleast one user selectable property of the optical cursor; and generatingcommands to control position of a cursor generated by the computer basedon position of the optical cursor and to control functioning of thecomputer based on the at least one property of the optical cursor. 20.The method of claim 19 further comprising: superimposing a plurality offiducials on the remotely located screen, wherein the step of processingthe image includes determining position of the plurality of fiducialswithin the image and determining position of the optical cursor relativeto at least one of the fiducials.
 21. The method of claim 20 furthercomprising determining position of the optical cursor relative toposition of the output from the computer.
 22. The method of claim 20wherein the step of superimposing comprises moving the fiducials toexpand a bounded region until the optical cursor is detected within theregion bounded by the fiducials.
 23. The method of claim 20 wherein thestep of superimposing comprises moving the fiducials to reduce a boundedregion surrounding output from the computer to reduce processing of theimage.
 24. A computer presentation system for generating commands toremotely control a computer based on a plurality of user selectableproperties of an optical cursor generated by a hand-held pointer andprojected on a screen displaying output from the computer, the systemcomprising: a camera for capturing an image of the output from thecomputer; and a processor in communication with the camera forprocessing the image to detect position of the optical cursor and atleast one property of the optical cursor and for converting the positionand at least one property to corresponding commands to control thecomputer and move an internal cursor to a position corresponding to theoptical cursor while the optical cursor remains within the outputdisplayed on the screen.
 25. A computer readable storage medium havingstored data representing instructions executable by a computer togenerate commands to control a cursor generated by the computer based ona plurality of user controllable properties of an external cursor, thecomputer readable storage medium comprising: instructions for detectingat least one of the user selectable properties of the external cursor;and instructions for generating a command for the computer based on theat least one detected property of the external cursor.
 26. A computerreadable storage medium having stored data representing instructionsexecutable by a computer to generate commands to control the computerbased on an external cursor projected onto an image of output generatedby the computer, the computer readable storage medium comprising:instructions for processing an image of the output to detect at leastone property of the external cursor including position of the externalcursor relative to the output; and instructions for converting theposition and the at least one property to a command to control thecomputer to move an internal cursor to a position corresponding to theexternal cursor.